home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / gnu / uucp-104.lha / uucp-1.04 / TODO < prev    next >
Text File  |  1993-02-13  |  18KB  |  574 lines

  1. This is a list of things to do for the Taylor UUCP package.  Please
  2. feel free to work on any of them.  You may want to check with me first
  3. to make sure that nobody else is working on them as well.
  4.  
  5. Some of these are my thoughts, but most are suggestions from other
  6. people; I have tried to give credit.  They are in the order I received
  7. them; the missing numbers have already been implemented.
  8.  
  9. Just because something is on the list doesn't mean that I necessarily
  10. think it is a good idea.  It does mean that I think it's worth
  11. thinking about.
  12.  
  13. 2.
  14.  
  15. John Cowan <cowan@snark.thyrsus.com> says:
  16.  
  17. >I think you should accept a broader range of time specifications.
  18. >Consider using getdate() (from your handy Usenet news source code)
  19. >with its high-powered yacc parser.
  20.  
  21. Of course, getdate() accepts a single date, but we want a range.  A
  22. better syntax would be certainly be nice.
  23.  
  24. 9.
  25.  
  26. Gordon Burditt <gordon@sneaky.lonestar.org> warns about modifications
  27. to the TZ environment variable, to fool uucico into dialing out at an
  28. inappropriate time.
  29.  
  30. 10.
  31.  
  32. Gordon Burditt <gordon@sneaky.lonestar.org> says:
  33.  
  34. >(4) Less important, because few people will have this problem, is a 
  35. >port-specific dialcodes file.  Why?  Well, one system I had was connected
  36. >to 2 inside lines "dial 9 for outside line", and one outside line (which
  37. >doesn't want the 9).  A number of the systems called were "inside", so
  38. >you didn't add the 9 on those lines dialing from inside, but you did add 
  39. >"390" to the 4-digit number if you dialed it via "outside".  Also not 
  40. >unheard of are systems with 2 outside lines that are local to different 
  41. >area codes, or one local outside line and one WATS line (which MUST
  42. >have an area code).
  43. >Example:
  44. >    inside-line Dialcodes        outside-line Dialcodes
  45. >    pbx    ""            pbx    "390"
  46. >    local    "9"            local    ""
  47. >    nyc    "9-1212"        nyc    "1212"
  48.  
  49. 12.
  50.  
  51. Ralf E. Stranzenbach <ralf@reswi.ruhr.de> says:
  52.  
  53. >It would be nice to also have the option of running a shell script each time  
  54. >uucico connects/disconnects a systen. I do not mean shell scripts for dial/in.  
  55. >I would like to do some accounting and batching when the connection  
  56. >establishes.
  57.  
  58. 13.
  59.  
  60. les@chinet.chi.il.us (Leslie Mikesell) writes:
  61.  
  62. >>local-send /usr/spool/uucppublic !/usr/spool/uucpublic/private
  63. >>
  64. >>The directories are searched from left to right, and the last one to
  65. >>match determines whether the file may be sent or not.  This is
  66. >>slightly more general than NOWRITE, since it permits a public
  67. >>directory within a private directory within a public directory,
  68. >>although probably nobody will ever want that.
  69. >
  70. >Interesting... The obvious enhancement is to generalize to shell-like
  71. >wild cards for the READ/WRITE/COMMANDS entries.
  72.  
  73. 14.
  74.  
  75. Should there be a way for chat scripts to specify the parity to
  76. generate?  I don't think there's much point to specifying what parity
  77. to accept.
  78.  
  79. 17.
  80.  
  81. The -b and -s switches to uux are not implemented by uuxqt.
  82.  
  83. 18.
  84.  
  85. If we are supposed to call a system back, we should do it immediately
  86. rather than merely queuing up an empty command file.
  87.  
  88. 22.
  89.  
  90. Add an ftp port type which uses anonymous ftp rather than any of the
  91. UUCP protocols to do file transfers.  This would allow ftp work to be
  92. done late at night, and allow neighbors of cooperative Internet sites
  93. to use UUCP forwarding for anonymous FTP.
  94.  
  95. 31.
  96.  
  97. David Nugent: add a -C option to uucico to only call the system if
  98. there is work to do.
  99.  
  100. 32.
  101.  
  102. It would be nice if uucico could sleep until a line was available.
  103. This is complicated by the possibility of wanting to wait for any of
  104. several different lines, and one would really want some sort of
  105. semaphore function to do it right.  If the available lines could be
  106. sorted, then each could be assigned to a byte in a line lock file.
  107. Looking for a line could be done by sleeping on a read lock on all
  108. possible lines.  Once it came through, write locks would be attempted.
  109. If they all failed, somebody else snuck in, so you would sleep on a
  110. read lock again.  This isn't great because a process could be starved,
  111. but it might be better than nothing.
  112.  
  113. This could be tied in to uucp and uux, such that they wouldn't
  114. actually fire up uucico unless a line was known to be available; an
  115. additional switch would be used to fire up uucico anyhow (or one could
  116. switch the default behaviour and the switch).
  117.  
  118. So how do you sort the lines?  You could just use the index in the
  119. port (or Devices) file, but what if multiple ports used the same
  120. physical device?  Hmmm.
  121.  
  122. 43.
  123.  
  124. David Nugent: it would be nice to be able to set debugging, log, and
  125. statistics files on a site by site basis.
  126. Brian Murrell: heck, set those files on a port by port basis as well.
  127.  
  128. 74.
  129.  
  130. Yanek Martinson: allow each system to independently choose whether to
  131. permit shell execution.
  132.  
  133. 81.
  134.  
  135. Marty Shannon: log reason for dial failure (chat-fail string) in
  136. .Status file.
  137.  
  138. 83.
  139.  
  140. Switch between 'M' and 'S' correctly in the BNU log file output.
  141.  
  142. 86.
  143.  
  144. Les Mikesell: allow a separate program to be specified to handle the
  145. communications with a particular system.
  146.  
  147. 105.
  148.  
  149. T. William Wells: close and open the Debug file after each file
  150. transfer.  Alternatively, cycle through a series of Debug file names
  151. every 1000 lines or so.
  152.  
  153. 106.
  154.  
  155. Marty Shannon: add a time command for ports, to specify when they may
  156. be used.
  157.  
  158. 115.
  159.  
  160. T. William Wells: new options for uustat:
  161.     -i display job ids only
  162. Also, there should perhaps be a configuration option to request uustat
  163. to only display jobs submitted by the user running uustat, except for
  164. root and uucp.
  165.  
  166. 117.
  167.  
  168. Marc Unangst: provide some way to change the debugging level of a
  169. running uucico.  T. William Wells suggests having it read a file to
  170. change arbitrary configuration information, although obviously one has
  171. to be careful of what gets changed while a connection is active.
  172.  
  173. 120.
  174.  
  175. Jarmo Raiha: new chat-fail commands: one to not update the status file
  176. and require a retry wait, and one to permit the string to occur a few
  177. times before reporting an error.
  178.  
  179. 124.
  180.  
  181. Peter da Silva: perhaps there should be a ``chat-end-program'' command
  182. to let a program be run after the initial handshake has been completed
  183. and the protocol has been selected and turned on.  This would let
  184. people run stty to change their terminal parameters.
  185.  
  186. 128.
  187.  
  188. Richard Stallman: have an interactive program to set up a chat script.
  189. It would let you type directly to the port, recording what you type as
  190. send strings and recording what comes back from the other side as
  191. expect strings.
  192.  
  193. 129.
  194.  
  195. Use POSIX fcntl locks when possible instead of creating a lock file.
  196.  
  197. 130.
  198.  
  199. Chip Salzenberg: BSD lets you override the timeout for a particular
  200. expect string by using a trailing ~.
  201.  
  202. 138.
  203.  
  204. T. William Wells: BNU apparently uses a file named A.whatever to hold
  205. the line number reached in current C. file processing.  This is a
  206. hack, and won't work right with size control anyhow, but
  207. fsysdep_did_work could, for example, clobber the first byte in the
  208. line to a # or something to mark that it had been finished.  Still a
  209. hack, but a better one.
  210.  
  211. 139.
  212.  
  213. Patrick Smith: incorporate patches to generate full debugging traces
  214. with less debugging file overhead.  The debugging file repeats too
  215. much information at great length right now--not good.
  216.  
  217. 141.
  218.  
  219. Franc,ois Pinard: batch up pauses and delays in chat scripts and do
  220. them all at once in a single system call.  This is particularly useful
  221. for pauses on systems which don't support subsecond sleeps.  For
  222. everything else it's a fairly minor optimization.
  223.  
  224. 142.
  225.  
  226. Franc,ois Pinard: give uustat an option to requeue jobs to another
  227. system.  This only makes a lot of sense for rmail executions, but it's
  228. fairly easy to do for any type of command.  I think uucico does all
  229. the file checking needed to ensure that this doesn't break security,
  230. but that should be double-checked.
  231.  
  232. 144.
  233.  
  234. T. William Wells: add a -g option to uucico to permit specifying the
  235. maximum grade to be transferred at that time.  This could restrict the
  236. timegrade command further, but should not be permitted to override it.
  237.  
  238. 145.
  239.  
  240. T. William Wells: if uucico or uuxqt get started with bad arguments,
  241. put an indication in the log file since stderr may be /dev/null.
  242.  
  243. 146.
  244.  
  245. Richard Todd: it would be nice to sometimes be able to request the
  246. other side to turn on debugging.
  247.  
  248. 147.
  249.  
  250. Bart Schaefer: some more possible options for uucico:
  251.     -R reverse roles (hangup immediately).  Not too exciting.
  252.     some method to restrict calling to particular systems.
  253.  
  254. 148.
  255.  
  256. Jarmo Raiha: some method to control the work queue at the remote end.
  257. This could get awfully general, though.
  258.  
  259. 149.
  260.  
  261. The interaction of the time command and defaults can be confusing,
  262. since any time command in the actual system entry, even a fairly
  263. specific one, will wipe out the default entry.  Not sure what can be
  264. done about this.
  265.  
  266. 150.
  267.  
  268. Jarmo Raiha: should there be some way to specify modem initialization
  269. strings when uucico is hanging on a port with -l or -e?  This would
  270. presumably require a new type of chat script associated with a dialer.
  271.  
  272. 151.
  273.  
  274. Petri Helenius: log complete CONNECT string reported by modem, so that
  275. the baud rate is recorded in the log file.
  276.  
  277. 152.
  278.  
  279. Marc Evans: let the protocol selection be based on the CONNECT string,
  280. so that different protocols could be selected based on what type of
  281. connection was made.
  282.  
  283. 153.
  284.  
  285. Chris Lewis: provide a signal to get a core dump even on systems which
  286. won't do core dumps if the uid is not the euid.  One could catch a
  287. signal, call setuid (getuid ()), and then raise the signal again.
  288. Unfortunately the core dump has to wind up in a directory which is
  289. world writable, so that the process is able to create the core file,
  290. but is not world readable, since that would permit anybody to read the
  291. core dump file and extract private information from it.
  292.  
  293. 154.
  294.  
  295. Les Mikesell: write a new version of dial.o, with provisions for
  296. running a chat script.
  297.  
  298. 155.
  299.  
  300. Scott Blachowicz: perhaps there should be some way to telling uucico
  301. to not log certain errors.  This could get fairly complex, though.
  302.  
  303. 156.
  304.  
  305. Franc,ois Pinard: have uustat -m report the time of the last
  306. successful conversation when reporting a failure.
  307.  
  308. 158.
  309.  
  310. Thomas Fischer: should there be a way to completely disable an entry
  311. in the sys, port or dial file?  Such as a ``disable'' command?
  312.  
  313. 159.
  314.  
  315. Petri Helenius: when uuxqt -s is invoked, lock uuxqt for the system so
  316. that only one uuxqt is invoked per system.  If the -c option is used,
  317. don't lock on a per system basis, and ignore any per system locks
  318. (regardless of -s).  If neither option is used, respect existing
  319. system and command locks, and do any other type of file.
  320.  
  321. 161.
  322.  
  323. Scott Blachowicz: provide some sort of include mechanism for the
  324. configuration files.
  325.  
  326. 162.
  327.  
  328. Chris Lewis: add uuxqtpolicy command, probably in config, supporting
  329. the following values which determine when uuxqt should be run:
  330.     - never (let cron or something else worry about it)
  331.     - perinvocation (when uucico exits for good - current behaviour)
  332.     - persite (when uucico terminates a conversation - HDBish)
  333.     - periodic (per 5 or 10 incoming X. files - BSDish)
  334.     - perturnaround?
  335.  
  336. 163.
  337.  
  338. Sort jobs in the send queue by size.  Pretty easy.
  339.  
  340. 164.
  341.  
  342. Ed Carp: preserve files if uuxqt execution fails.
  343.  
  344. 165.
  345.  
  346. Marc Sheldon: use exit codes from <sysexits.h> in uux and uucp.
  347.  
  348. 166.
  349.  
  350. Chip Salzenberg: allow chat failure strings to specify a retry time.
  351.  
  352. 167.
  353.  
  354. Gregory Bond: allow a dialer sequence for a TCP port, so you can make
  355. a TCP connection to a modem and then dial out.
  356.  
  357. 168.
  358.  
  359. Jose A. Manas: allow a maximum connect time, after which we try to
  360. hang up the connection.  This requires a protocol extension, since
  361. there's no way to force the other side to hang up.  The best we can do
  362. without an extension is refuse to send any new jobs ourselves.  Of
  363. course, we could just drop the connection.
  364.  
  365. 169.
  366.  
  367. Franc,ois Pinard: when given uustat -k00FC, check each possible job ID
  368. and use it if there is an unambiguous one.
  369.  
  370. 170.
  371.  
  372. T. William Wells: if ! HAVE_SETREUID && ! HAVE_SAVED_SETUID, fork a
  373. subprocesses to revoke setuid and read the file over a pipe.
  374.  
  375. 171.
  376.  
  377. Provide some option to have the internal uuconf functions not start
  378. with an underscore.
  379.  
  380. 172.
  381.  
  382. T. William Wells: have some way to configure the parity for cu.
  383.  
  384. 173.
  385.  
  386. Gert Doering: uuchk should display unknown system information.
  387.  
  388. 175.
  389.  
  390. T. William Wells:
  391. Cu will not let itself be interrupted before the connection is
  392. established. If the chat script doesn't write something, cu does
  393. something odd, I've forgotten exactly what. Cu takes an
  394. inordinate amount of time after the line drops to exit. Somebody,
  395. cu, I think, but maybe uucico, drops dtr twice sometimes. Again,
  396. somebody will attempt to write after a hangup signal has been
  397. received. Once a hangup has been received, I/O should not be
  398. attempted. Among other things this will save the bacon of those
  399. who have brain damaged serial drivers (FAS, sigh, is among them)
  400. that don't handle output properly on a dropped line.
  401.  
  402. Me:
  403. Note that sometimes you do want to write to a line after receiving a
  404. hangup signal.  For example, you might want to use ATZ to reset a
  405. modem.
  406.  
  407. 176.
  408.  
  409. Hans-Dieter Doll: provide some way (another escape sequence) to pass
  410. the protocol to a chat-program.  Or, allow the protocol as an argument
  411. to the chat script command, which is more general, but maybe a bit too
  412. fancy.
  413.  
  414. 177.
  415.  
  416. Nickolay Saukh: use a default port for cu, you can just do ``cu
  417. number''.
  418.  
  419. 178.
  420.  
  421. Don Phillips: should there be some way to restrict of grade of
  422. transfers even when the other system places the call?
  423.  
  424. 179.
  425.  
  426. Nickolay Saukh: add something to chat scripts to specify the timeout
  427. for an expect string, e.g. AT\c OK\W3 to wait for 3 seconds.  Except
  428. that perhaps the unit should not be seconds.  Berkeley apparently uses
  429. ~number, not \W number, but I don't see any reason to prevent use of
  430. the ~ character in an expect string.
  431.  
  432. 180.
  433.  
  434. Nickolay Saukh: if we have received a partial file, request the remote
  435. system to start sending from that point.  We currently accept SVR4
  436. style remote file positioning requests, but we do not generate them.
  437.  
  438. 181.
  439.  
  440. Mark Powell: provide some way to restrict file transfer by size as
  441. well as grade?  One way would be to let uux select the grade based on
  442. the file size.
  443.  
  444. 182.
  445.  
  446. Mark Powell: permit using multiple timetables in a single time
  447. statement.
  448.  
  449. 183.
  450.  
  451. Optionally check for interrupts in fcopy_file, since it can take a
  452. long time to copy a file named in a uucp request.
  453.  
  454. 184.
  455.  
  456. Ian Moran: if an attempt is made to a copy a file to a directory which
  457. denies write permission, perhaps the file should be saved somewhere.
  458. It must be saved in a private location, though.
  459.  
  460. 185.
  461.  
  462. A syntax error in a command received from the remote system should not
  463. hold up the queue.  Unfortunately, I don't know what can be done
  464. except deny the command and report it.  Reporting a garbled command
  465. error should report the command correctly, rather than just the first
  466. character.
  467.  
  468. 186.
  469.  
  470. Franc,ois Pinard: have an option to control nostop vs. stop on the cu
  471. command line.
  472.  
  473. 187.
  474.  
  475. Fix the notion of %nostop to be SVID compatible.
  476.  
  477. 188.
  478.  
  479. Frank Conrad: provide a means to set the strip mode for a port, to
  480. make it easy to use it from cu.
  481.  
  482. 189.
  483.  
  484. Marc Unangst: there should be a way to specify that a system should
  485. only be called if there are jobs of a certain grade, but if the system
  486. is called then jobs of any grade should be transferred.  This
  487. basically means splitting the ``timegrade'' command into two commands:
  488. ``place-call-timegrade'' and ``transfer-timegrade''.  Or maybe another
  489. optional argument to ``timegrade'':
  490.     timegrade grade time-string [retry] [transfer-any]
  491. not to mention
  492.     time time-string [retry] [transfer-any]
  493. Or maybe a separate command for a system or port like
  494.     transfer-any BOOL
  495.  
  496. 190.
  497.  
  498. Chip Salzenberg: it would be really nice if uucico could automatically
  499. figure out when it could use an E command, so that uux didn't have to
  500. generate it and so that uucico could use with other versions of uux.
  501. Unfortunately, it would require uucico to read the execution file to
  502. see if it were suitable; this would be complex, but it would probably
  503. be worth it since normally the execution file would wind up not being
  504. sent.  Of course, the current method works too; it's just harder to
  505. combine with other versions of UUCP.
  506.  
  507. 191.
  508.  
  509. Brian J. Murrell: should there be a way to cu a specific alternate?
  510.  
  511. 192.
  512.  
  513. Andrew A. Chernov: Perhaps cu -pport system should be able to try
  514. different alternates for the system, because there might be different
  515. phone numbers to try.
  516.  
  517. 193.
  518.  
  519. Brian J. Murrell: it would be nice to be able to ^C a cu chat script
  520. if you know it's going to fail.  Right now you have to use ^\.
  521.  
  522. 194.
  523.  
  524. Steven S. Dick: have some way to force uucico off the phone at a
  525. certain time.  If that is done, it might be cool to have some way to
  526. predict how long a file transfer will take, and not do it if it will
  527. take too long.  But, if doing file restart, you can just quit and then
  528. pick it up later.
  529.  
  530. 195.
  531.  
  532. Franc,ois Pinard: if the disk fills up, or some other error occurs,
  533. while receiving a file, perhaps it would make sense to turn the
  534. connection around immediately and see if the other side had anything
  535. to do, and then try again later.  This would require a protocol
  536. extension.  I don't know if it's worth it.  The code should be checked
  537. to see how well it handles a disk full situation.
  538.  
  539. 196.
  540.  
  541. For real adjustability, provide some mechanism for picking the lead
  542. characters to use for the shell scripts, between : and #!.
  543.  
  544. 197.
  545.  
  546. Try alternate IP addresses if there are any.
  547.  
  548. 198.
  549.  
  550. Lele Gaifax: mention the device in Stats, and provide some way to
  551. associate the entry in Log with the entry in Stats.
  552.  
  553. 199.
  554.  
  555. Michael Richardson: provide some way to turn on parity for the login
  556. chat, since some systems apparently require it.  Provide some way for
  557. cu to control parity after connecting.
  558.  
  559. 200.
  560.  
  561. Chip Salzenberg: add max-remote-debug to config.
  562.  
  563. 201.
  564.  
  565. Gert Doering: change the timeout message in chat scripts to reflect
  566. which chat script timed out (dialer or login).
  567.  
  568. 202.
  569.  
  570. Bill Foote: have uuchk check whether a system is defined more than
  571. once.
  572.  
  573. 203.
  574.